---
id: unit1
title: 脚手架开发  
---

## 什么是脚手架

## 问题

### 为什么全局安装@vue/cli 终端会多出一个vue的命令。

### 执行vue命令发生了什么。

### 为什么vue指向了一个js文件，电脑却可以运行它？

脚手架架构设计和框架搭建
站在前端研发的角度，分析开发脚手架的必要性

脚手架核心价值是将研发过程  
- 自动化：项目重复代码拷贝/git操作/发布上线操作
- 标准化：项目创建/git flow/发布流程/回滚流程
- 数据化：研发过程数据化、系统化，使得研发过程可量化

自研脚手架和自动化构建工具的区别 
市面上已经有了如Jenkins,travis等自动化构建工具，我们为什么还要自研脚手架？

- 不满足需求：jenkins/travis通常需要在git hooks中触发，在服务端执行，无法覆盖研发人员本地的功能，如创建项目自动化，git操作自动化
- 定制复杂：jenkins/travis等工具的定制过程需要开发插件，要用到Java语言，对前端开发人员并不友好

其实脚手架的实质就是一个操作系统上的客户端。它通过命令行来执行，下面我们用一个常见的例子来举例：

vue create project
上面这条看似简单常见的命令实际上由3个部分组成：

主命令：vue
command：create
command的param：project 这条命令大家应该都很常见了，它表示创建一个vue项目，项目的名字叫project。



脚手架执行原理如下  

- 在终端输入vue create project  
- 终端解析出vue
- 在环境变量中找到vue命令
- 终端根据vue命令链接到实际文件vue.js
- 终端利用node执行vue.js
- vue.js解析command或者param
- vue.js执行command
- 执行完毕，退出执行
